category: sub_main
step: 4_graph
sub_step: 4_edge
in_main_macro: graph
doc_status: ready
macro graph_edge
Без вспомогательных макросов.
Это четвёртый шаг макроса graph
. Данный макрос обрабатывает данные из graph_unique
, создавая таблицу с гранями графа, содержащую информацию о связях между узлами и группами.
Этот макрос принимает следующие аргументы:
params=none,
stage_name=none,
limit0=none
Сначала происходит настройка материализации данных. В config
используется post_hook
- он указывает на необходимость выполнения действия после завершения загрузки данных.
Технически post_hook
используется для вставки данных из graph_edge
в целевую таблицу с заменой.
Далее в макросе происходит создание временной таблицы join_left
для хранения соединения между уникальными ключами и узлами. Внутри неё происходит соединение таблицы graph_tuples
с таблицей graph_unique
по ключам.
И в конце работы макроса создаётся выборка данных для графа, где каждому уникальному ключу соответствует один узел и одна группа.
Если аргумент limit0
активирован, то в конце SQL-запроса будет добавлено LIMIT 0
.
Файл в формате sql в папке models. Название файла graph_edge
Содержимое файла:
-- depends_on: {{ ref('graph_unique') }}
-- depends_on: {{ ref('graph_tuples') }}
{{ datacraft.graph() }}